SlideShare a Scribd company logo
1 of 6
План вебинара:
1. История;
2. Концепция;
2.1 Модель;
2.2 Представление;
2.3 Контроллер;
3. Назначение;
4. Применение MVC при разработке 1С;
MVC – паттерн проектирования приложений
Для кого? Зачем? Пролог
Для кого?
Я подразумеваю, что слушатели данного вебинара имеют хотя бы базовые навыки программирования и
понимают важность проектирования приложений.
Зачем?
Я люблю чистый код, не люблю код с запашком (он же интусский кот). В своей работе я стараюсь
наследовать принципы программирования (ну или проектирования): DRY, KISS, YAGNI чего и вам всем
желаю.
Паттерны как раз позволяют не повторятся, держать код чистым и простым.
Что же такое паттерн? Это шаблон, тот самый велосипед, который придумали до нас и который не нужно
изобретать снова и снова! Просто берешь и пользуешься.
По этой ссылке есть отличная статья, автор которой очень доступным языком описывает паттерны. Их
правда много, но мне почему то показалось, что кроме MVC ни один больше не подходит для 1С. Буду
рада, если вы скажете, что я ошибаюсь
MVC = Model - View - Controller
Концепция MVC была описана Трюгве Реенскаугом в 1978 году, работавшем в научно-исследовательском
центре «Xerox PARC» над языком программирования «Smalltalk». Позже, Стив Бурбек реализовал шаблон
в Smalltalk-80.
Окончательная версия концепции MVC была опубликована лишь в 1988 году в журнале Technology Object.
Впоследствии, шаблон проектирования стал эволюционировать. Например, была представлена
иерархическая версия HMVC (Hierarchical MVC ), MVA (Model–view–adapter), MVVM (Model-View-
ViewModel).
Данные паттерны, по моему мнению, больше ориентированы на ООП, поэтому в рамках данного вебинара
рассмотрены не будут.
Немного истории MVC
Model
Controller
View
Схема MVC
Model – бизнес логика, БД. Бизнес-логика -
это реализация предметной области
в информационной системе.
View – отвечает за формирование UI.
Controller
• Взаимодействие с пользователем
• Пользовательский ввод
• Связующее звено между Model и View
Назначение MVC
Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации
(представления, вида). За счет такого разделения повышается возможность повторного использования кода.
Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные
одновременно в различных контекстах и/или с различных точек зрения.
В частности, выполняются следующие задачи:
 одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели. Например, некоторые
данные могут быть одновременно представлены в виде электронной таблицы, гистограммы и круговой диаграммы.
 не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод
данных), для этого достаточно использовать другой контроллер.
 ряд разработчиков специализируется только в одной из областей: либо разрабатывают графический интерфейс, либо
разрабатывают бизнес-логику. Поэтому возможно добиться того, что программисты, занимающиеся разработкой бизнес-
логики (модели), вообще не будут осведомлены о том, какое представление будет использоваться. Ценность реализации
данной задачи очень сомнительна, особенно исходя из реалий 1С.
Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления,
ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо
от визуального представления, а также создавать несколько различных представлений для одной модели.
Наиболее типичная реализация отделяет вид от модели путем установления между ними аппарата событий (подписка
/оповещение). При каждом изменении внутренних данных в модели она оповещает все зависящие от неё представления, и
представление обновляется. Для этого используется шаблон «наблюдатель». При обработке реакции пользователя вид выбирает,
в зависимости от нужной реакции, нужный контроллер, который обеспечит ту или иную связь с моделью.
Ты программист, но
не используешь
паттерны?
Не надо так!

More Related Content

More from Анастасия Масенко

«Управление инвестиционными проектами на базе 1С:Управление холдингом»
«Управление инвестиционными проектами на базе 1С:Управление холдингом»«Управление инвестиционными проектами на базе 1С:Управление холдингом»
«Управление инвестиционными проектами на базе 1С:Управление холдингом»Анастасия Масенко
 
закупка импортных товаров в 1с управление торговлей 11.31 горбушина
закупка импортных товаров в 1с управление торговлей 11.31 горбушиназакупка импортных товаров в 1с управление торговлей 11.31 горбушина
закупка импортных товаров в 1с управление торговлей 11.31 горбушинаАнастасия Масенко
 
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...Анастасия Масенко
 
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...Анастасия Масенко
 
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»Анастасия Масенко
 
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...Анастасия Масенко
 
Оптимизация – стоимость владения
Оптимизация – стоимость владенияОптимизация – стоимость владения
Оптимизация – стоимость владенияАнастасия Масенко
 

More from Анастасия Масенко (8)

«Управление инвестиционными проектами на базе 1С:Управление холдингом»
«Управление инвестиционными проектами на базе 1С:Управление холдингом»«Управление инвестиционными проектами на базе 1С:Управление холдингом»
«Управление инвестиционными проектами на базе 1С:Управление холдингом»
 
закупка импортных товаров в 1с управление торговлей 11.31 горбушина
закупка импортных товаров в 1с управление торговлей 11.31 горбушиназакупка импортных товаров в 1с управление торговлей 11.31 горбушина
закупка импортных товаров в 1с управление торговлей 11.31 горбушина
 
учет факторинга в 1с erp лосева
учет факторинга в 1с erp лосеваучет факторинга в 1с erp лосева
учет факторинга в 1с erp лосева
 
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...
Вебинар «Организация адресного хранения в 1С:ERP. Области и методология приме...
 
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...
Вводная часть вебинара «1С Документооборот. Настройка и возможности бесшовной...
 
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»
Вебинар «1С:Документооборот. Настройка и возможности бесшовной интеграции»
 
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...
Изменения в исчислении страховых взносах и НДФЛ, а так же новые формы отчетно...
 
Оптимизация – стоимость владения
Оптимизация – стоимость владенияОптимизация – стоимость владения
Оптимизация – стоимость владения
 

"Паттерн проектирования MVC для 1С"

  • 1. План вебинара: 1. История; 2. Концепция; 2.1 Модель; 2.2 Представление; 2.3 Контроллер; 3. Назначение; 4. Применение MVC при разработке 1С; MVC – паттерн проектирования приложений
  • 2. Для кого? Зачем? Пролог Для кого? Я подразумеваю, что слушатели данного вебинара имеют хотя бы базовые навыки программирования и понимают важность проектирования приложений. Зачем? Я люблю чистый код, не люблю код с запашком (он же интусский кот). В своей работе я стараюсь наследовать принципы программирования (ну или проектирования): DRY, KISS, YAGNI чего и вам всем желаю. Паттерны как раз позволяют не повторятся, держать код чистым и простым. Что же такое паттерн? Это шаблон, тот самый велосипед, который придумали до нас и который не нужно изобретать снова и снова! Просто берешь и пользуешься. По этой ссылке есть отличная статья, автор которой очень доступным языком описывает паттерны. Их правда много, но мне почему то показалось, что кроме MVC ни один больше не подходит для 1С. Буду рада, если вы скажете, что я ошибаюсь
  • 3. MVC = Model - View - Controller Концепция MVC была описана Трюгве Реенскаугом в 1978 году, работавшем в научно-исследовательском центре «Xerox PARC» над языком программирования «Smalltalk». Позже, Стив Бурбек реализовал шаблон в Smalltalk-80. Окончательная версия концепции MVC была опубликована лишь в 1988 году в журнале Technology Object. Впоследствии, шаблон проектирования стал эволюционировать. Например, была представлена иерархическая версия HMVC (Hierarchical MVC ), MVA (Model–view–adapter), MVVM (Model-View- ViewModel). Данные паттерны, по моему мнению, больше ориентированы на ООП, поэтому в рамках данного вебинара рассмотрены не будут. Немного истории MVC
  • 4. Model Controller View Схема MVC Model – бизнес логика, БД. Бизнес-логика - это реализация предметной области в информационной системе. View – отвечает за формирование UI. Controller • Взаимодействие с пользователем • Пользовательский ввод • Связующее звено между Model и View
  • 5. Назначение MVC Основная цель применения этой концепции состоит в разделении бизнес-логики (модели) от её визуализации (представления, вида). За счет такого разделения повышается возможность повторного использования кода. Наиболее полезно применение данной концепции в тех случаях, когда пользователь должен видеть те же самые данные одновременно в различных контекстах и/или с различных точек зрения. В частности, выполняются следующие задачи:  одной модели можно присоединить несколько видов, при этом не затрагивая реализацию модели. Например, некоторые данные могут быть одновременно представлены в виде электронной таблицы, гистограммы и круговой диаграммы.  не затрагивая реализацию видов, можно изменить реакции на действия пользователя (нажатие мышью на кнопке, ввод данных), для этого достаточно использовать другой контроллер.  ряд разработчиков специализируется только в одной из областей: либо разрабатывают графический интерфейс, либо разрабатывают бизнес-логику. Поэтому возможно добиться того, что программисты, занимающиеся разработкой бизнес- логики (модели), вообще не будут осведомлены о том, какое представление будет использоваться. Ценность реализации данной задачи очень сомнительна, особенно исходя из реалий 1С. Важно отметить, что как представление, так и контроллер зависят от модели. Однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели. Наиболее типичная реализация отделяет вид от модели путем установления между ними аппарата событий (подписка /оповещение). При каждом изменении внутренних данных в модели она оповещает все зависящие от неё представления, и представление обновляется. Для этого используется шаблон «наблюдатель». При обработке реакции пользователя вид выбирает, в зависимости от нужной реакции, нужный контроллер, который обеспечит ту или иную связь с моделью.
  • 6. Ты программист, но не используешь паттерны? Не надо так!